Computer processing system with resource  optimization and associated methods

ABSTRACT

A computing device includes a processor to execute a process, and at least one memory coupled to the processor. The processor compares execution of the process to at least one global parameter, adjusts a priority level of the executed process in response to satisfaction of the at least one global parameter, and allocates a portion of the memory in response to the adjusted priority level.

RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.15/416,090 filed on Jan. 26, 2017 which claims the benefit ofprovisional application Ser. No. 62/287,638 filed Jan. 27, 2016, whichis incorporated herein in its entirety by reference.

TECHNICAL FIELD

The present disclosure relates to the field of computer processingsystem monitoring, and more particularly, to optimizing resource usageby applications executing within the computer processing system.

BACKGROUND

In a Windows based computing environment, resources such as CPU, Memoryand input/output operations per second (IOPS) allocations are notoptimized by the underlying operating system. This may create userexperience and hardware density issues.

While Windows processes can have several levels of CPU and I/Opriorities, and can be spread among one or several CPU/Cores, thesesettings are not adjusted dynamically to reflect the real user activity.Thus, real user activities may be subject to unnecessary slowdowns.

The same issue exists with the memory (e.g., RAM) resources, where thecomputing environment relies on developers to properly optimize theamount of memory used by applications. However, the reality is that itis almost never done.

SUMMARY

A computer processing system comprises at least one processor configuredto execute a process, and at least one memory coupled to the at leastone processor. The at least one processor is further configured tocompare execution of the process to at least one global parameter,adjust a priority level of the executed process in response tosatisfaction of the at least one global parameter, and allocate aportion of the memory in response to the adjusted priority level.

The priority level may be a processing priority level of the at leastone processor. The priority level may be an input/output (I/O) prioritylevel of the at least one processor.

The at least one global parameter may comprise a processor consumptionlevel. The portion of the memory may be allocated in response to amonitored execution of the process being less than the processorconsumption level.

The at least one processor may be further configured to perform thefollowing before execution of the process: identify the process to beexecuted; determine if the identified process matches a known resourceclassification, with the known resource classification having a knownpriority level associated therewith; and adjust the priority level ofthe process to be executed to the known priority level in response tothe identified process matching the known resource classification.

The at least one processor may be further configured to adjust thepriority level of the process to be executed to a default priority levelin response to the identified process not matching the known resourceclassification, with the default priority level associated with adefault resource classification.

The at least one memory may comprise a dedicated memory for supportingthe process executable by the at least one processor, with the dedicatedmemory configured to store the known and default resourceclassifications.

The at least one processor may comprise a plurality of processors, andwherein the adjustment of the priority level further comprises changinghow many processors are to be used to execute the process.

A resource classification of the executed process may be updated afterthe adjustment of the priority level. The computing device may furthercomprise an operating system stored in the at least one memory, whereinthe at least one processor may be configured to operate based on theoperating system, and wherein the at least one processor may be furtherconfigured to update the resource classification via the operatingsystem.

Another aspect is directed to a computing device that comprises at leastone processor configured to execute a process, and at least one memorycoupled to the at least one processor. The at least one processor isfurther configured to monitor execution of the process by determiningprocessing resources consumed, compare execution of the process to aprocessor consumption level, adjust a priority level of the executedprocess in response to the consumption of processing resources beingless than the processor consumption level, and allocate a portion of thememory in response to the adjusted priority level.

Another aspect is directed to a method comprising monitoring executionof a process by at least one processor that is supported by at least onememory coupled to the at least one processor, with the monitoringincluding determining processing resources consumed by the at least oneprocessor. The method further includes comparing execution of theprocess to a processor consumption level, adjusting a priority level ofthe executed process in response to the consumption of processingresources being less than the processor consumption level, andallocating a portion of the memory in response to the adjusted prioritylevel.

Yet another aspect is directed to a method comprising monitoringexecution of a process by at least one processor that is supported by atleast one memory coupled to the at least one processor. The methodfurther includes comparing execution of the process to at least oneglobal parameter, adjusting a priority level of the executed process inresponse to satisfaction of the at least one global parameter, andallocating a portion of the memory in response to the adjusted prioritylevel.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure will be understood more fully from the detaileddescription given below and from the accompanying drawings of variousembodiments, which, however, should not be taken to limit the disclosureto the specific embodiments, but are for explanation and understandingonly.

FIG. 1 is a block diagram of a computing environment having anintelligent resource optimization engine for intelligently anddynamically adjusting processing system resources for processes that areexecuted.

FIG. 2 is a flow chart illustrating a process for intelligently managingcomputing systems resources consumed by processes executing within thecomputing system.

FIG. 3 is one embodiment of a computer system that may be used with thepresent disclosure.

DETAILED DESCRIPTION

The present disclosure will now be described more fully hereinafter withreference to the accompanying drawings, in which preferred embodimentsof the disclosure are shown. This disclosure may, however, be embodiedin many different forms and should not be construed as limited to theembodiments set forth herein. Rather, these embodiments are provided sothat this disclosure will be thorough and complete, and will fullyconvey the scope thereof to those skilled in the art. Like numbers referto like elements throughout, and prime notation is used to indicatesimilar elements in alternative embodiments.

In the following description, numerous details are set forth. It will beapparent, however, to one of ordinary skill in the art having thebenefit of this disclosure, that the present disclosure may be practicedwithout these specific details. In some instances, well-known structuresand devices are shown in block diagram form, rather than in detail, inorder to avoid obscuring the present disclosure.

In the embodiments discussed herein, processes executed in a computingenvironment, such as a WINDOWS™ computing environment, are subject tooptimizations done in parallel with the loading and execution of theapplication. In one embodiment, a common process behavior analysisengine, referred to herein as an intelligent resource optimizationengine, monitors processes and associates those processes withclassifications relevant to resource allocation and/or utilizationwithin the computing environment, and adjusts the classificationsdynamically as the processes are loaded and executed by the computingenvironment.

Some portions of the detailed description that follow are presented interms of algorithms and symbolic representations of operations on databits within a computer memory. These algorithmic descriptions andrepresentations are used by those skilled in the data processing arts tomost effectively convey the substance of their work to others skilled inthe art. An algorithm is here, and generally, conceived to be aself-consistent sequence of steps leading to a desired result. The stepsare those requiring physical manipulations of physical quantities.Usually, though not necessarily, these quantities take the form ofelectrical or magnetic signals capable of being stored, transferred,combined, compared, and otherwise manipulated. It has proven convenientat times, principally for reasons of common usage, to refer to thesesignals as bits, values, elements, symbols, characters, terms, numbers,or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the following discussion,it is appreciated that throughout the description, discussions utilizingterms such as generating, converting, executing, storing, receiving,obtaining, constructing, accessing, capturing, or the like, refer to theactions and processes of a computer system, or similar electroniccomputing device, that manipulates and transforms data represented asphysical (e.g., electronic) quantities within the computer system'sregisters and memories into other data similarly represented as physicalquantities within the computer system memories or registers or othersuch information storage, transmission or display devices.

The present disclosure also relates to an apparatus for performing theoperations herein. This apparatus may be specially constructed for therequired purposes, or it may comprise a general-purpose computerselectively activated or reconfigured by a computer program stored inthe computer. Such a computer program may be stored in a computerreadable storage medium, such as, but not limited to, any type of diskincluding floppy disks, optical disks, CD-ROMs, and magnetic-opticaldisks, read-only memories (ROMs), random access memories (RAMs), EPROMs,EEPROMs, magnetic or optical cards, or any type of media suitable forstoring electronic instructions.

The algorithms and displays presented herein are not inherently relatedto any particular computer or other apparatus. Various general-purposesystems may be used with programs in accordance with the teachingsherein, or it may prove convenient to construct a more specializedapparatus to perform the required method steps. The required structurefor a variety of these systems will appear from the description below.In addition, the present disclosure is not described with reference toany particular programming language. It will be appreciated that avariety of programming languages may be used to implement the teachingsof the disclosure as described herein.

FIG. 1 illustrates one embodiment of a computing environment 100 havingan intelligent resource optimization engine 120 for intelligently anddynamically adjusting processing system resources 110 for processes 140executed within the computing environment.

In embodiments, computing environments, such as those enables by theWINDOWS™ operating system, allow the configuration of CPU and I/Opriority levels 115.

Typical levels available for one or more processors executing thecomputing environment 100, referred to herein as CPU(s), are as follows:Realtime, High, Above Normal, Normal, Below Normal, Low, and Idle.

Typical levels for I/O processes executing within the computingenvironment 100 are as follows: High, Normal, Low, and Very Low.

On loaded environments, all user processes are competing for CPU andI/O. As a result, this also increases context switches and generates alot of performance downsides, dramatically decreasing the performancesof the applications.

In virtual environments (virtual desktops or server based computing)this default behavior also leads to a low user density (low number ofusers per server). While users can adjust CPU (not I/O) prioritiesmanually through the task manager, this is not a common usage.

To the exception of some computing system internal processes, allprocesses generally start with a “normal” priority, regardless of theirhistory of abnormal behavior. While one could programmatically decreasethe priority of a process when the process is having an abnormalbehavior, it is not enough.

The effect of such a technique depends on the priority levels gapbetween the process having an abnormal behavior and the others. If aprocess is having an abnormal behavior, lowering its priority will havean effect but the impact will be lower if all processes are running atthe “normal” priority compared to a situation where other processeswould be running at the “high” priority level which is not the default.For example, if a process is consuming 100% of CPU and is decreased to alow or idle priority level, it will still impact processes running atthe “normal” priority level (slowing them down) while it would notimpact processes running at the “high” priority level.

Another reason is that because the decision of lowering the priority ismade only after a sample time, this leads to a global system slowdownduring the sample time.

Yet another reason is that such a technique does not properly isolatethe abnormal process that will still have the ability to consume as manyCPU resources as it can.

Another more aggressive technique, called clamping, consists inpausing/restarting a process at a low interval of time (usually inmilliseconds) to limit the maximum amount of CPU it could use. Thistechnique will have a dramatic effect on the user experience as it iscreating a saw tooth effect on application responsiveness and theprocess CPU usage.

Today's computers are usually equipped with multiple CPU or single CPUwith multiple cores. Computing systems, such as MICROSOFT WINDOWS™operating systems, expose a setting, called affinity, allowing theconfiguration of one or several core(s) where application processes,such as processes 140, will be executed.

Old applications are likely to start with a single CPU/core affinity orwith an affinity lower than the number of cores which could lead to lowperformances. CPU/cores are internally identified with an Id and itappears that in a normal environment when lower Id cores are saturatedthere is a big slowdown of the operating system itself.

In one embodiment, the intelligent optimization engine 120 will classifyrunning user processes (e.g., processes 140) as belong to one of aplurality of different classification levels indicative of a process'sknown behavior. For example, the classification levels could be asfollows: Good, Bad, Really bad, and Really Really bad.

By default, unless a rule has been specified for a specific process, thespecific process will be considered as good until the actual behavior ofthe processes is known as discussed below.

As soon as a process is started, the intelligent resource optimizationengine 120 will adjust the process's CPU and I/O priorities andCPU/Cores affinity against:

Any manual rule that would have been defined by an administrator.

Rules defined by the self-learning mechanisms of the intelligentresource optimization engine 120 may be as follows:

If the process is known as “Good”, CPU priority will be adjusted to“High”, I/O priority to “High” and affinity to all available CPU/Cores;

If the process is known as “Bad”, CPU priority will be adjusted to AboveNormal, I/O priority won't be adjusted so will stay at “Normal” andaffinity will not be adjusted;

If the process is known as “Really Bad”, CPU priority will be adjustedto Normal, I/O priority to low and affinity will not be adjusted; and

If the process is known as “Really Really Bad”, CPU priority will beadjusted to “Below Normal”, I/O priority to “Low” and affinity will notbe adjusted.

With such a system, any preconfigured or well known “Bad”process/application will not have the ability to slow down otherapplications or the operating system itself because the more anapplication/process is identified as “Bad”, the bigger the priority gapis. Adjustments are done right at process creation and not after atrigger.

Also, if other applications are not demanding resources the applicationwill remain unaffected and will not show any performance slowdown.

The benefits associated with intelligent and evolving processesclassification can be understood by the following example. Suppose, auser has started to work and his applications have been adjusted as“good”. Then an antivirus scan starts. As CPU and I/O priorities havebeen adjusted to “High”, the user's applications won't experience theusual slowdown caused by the antivirus software.

In one embodiment, the engine will monitor processes activity and checktheir behavior against a global rule. The global rule defines when aprocess is experiencing abnormal CPU consumption. In one embodiment, therule is expressed in an average CPU consumption (expressed in percent oftotal CPU usage) over a specified period of time (in seconds).

One example of a rule for use by the intelligent resource optimizationengine 120 is a rule where a process will be considered as having anabnormal behavior when it is exceeding 20% of CPU for 30 seconds. Whensuch a rule is satisfied (e.g., the processes exceeds the CPU usage %for the period of time), the processes classification can be adjustedaccordingly.

In embodiments, an extension to this global CPU-based rule is an I/Obased rule for I/O optimization. When a process will trigger this globalrule is as follows: priorities and affinity will be adjusted for aspecified period of time (called “Idle Time”); CPU priority will be setto “Idle”; I/O priority will be set to “Very Low”; and affinity will beadjusted to a preconfigured number of CPU/Core(s) but limited to thehighest core Ids to preserve the operating system.

In other embodiments, the intelligent resource optimization engine 120will remember behavior and/or classifications associated with processes,and add the process to its table of “known processes” (e.g., processesclassification storage 125).

The effect will be to park a process that is currently having anabnormal behavior for a specific period of time dramatically restrictingthe amount of CPU & I/O it can consume and thus preserving the systemand other applications.

When idle time is over, previous priorities and affinity will berestored according to any user defined rule, any self-learning algorithmrule, or based on a previous state.

Each time a process has triggered the rule on a specificcomputer/machine, the processes is remembered and based on this memorythe intelligent algorithm will be able to classify processes and takeactions accordingly.

In embodiments, while adjusting priorities allows intelligent resourceoptimization engine 120 to give precedence to some applications/processover others, limit the affinity to highest Ids cores/CPUs, etc., theintelligent resource optimization engine 120 allows limiting the maximumamount of CPU an application/process can consume without having to usemore aggressive techniques (such as clamping) that would dramaticallyaffect the user experience (i.e., freezing applications).

Although the intelligent optimization engine 120 does not utilize CPUclamping techniques, in one embodiment, it could implement bothtechniques to solve different issues. In this case, any clamped processwill be excluded from the intelligent engine.

Furthermore, while computing systems generally provide APIs to clean aprocess memory, such as discarding unused pages, this process is notautomatic and should be implemented by application developers (whichagain they rarely do). This leads to applications overconsuming thephysical memory (RAM) causing users to add more and more memory to theircomputers/servers. In one embodiment, intelligent resource optimizationengine 120 will monitor processes activity, and based on an activityrule, will periodically trigger computing system APIs responsible thatenable processes memory to be reallocated (e.g., move unused memorypages to the pagefile), and thus free physical memory for otherprocesses also running on the same device dramatically decreasing theamount of minimum required physical memory per user.

FIG. 2 is a flow chart 200 illustrating a process for intelligentlymanaging computing systems resources consumed by processes executingwithin the computing system. The process is performed by processinglogic that may comprise hardware (circuitry, dedicated logic, etc.),software (such as is run on a general purpose computer system or adedicated machine), firmware, or a combination. In one embodiment, theprocess is performed by the intelligent resource allocation engine 120.

From the start, the method comprises identifying the process to beexecuted at Block 202, and determining if the process has a knownresource classification associated therewith at Block 204. The knownresource classification corresponds to a processing priority level andan I/O priority level.

If the process is associated with the known resource classification,then at least one of the processing priority level and the I/O prioritylevel for the process may be adjusted to the known resourceclassification at Block 206.

If the process is not associated with the known resource classification,then at least one of the processing priority level and the I/O prioritylevel for the process may be adjusted to the default resourceclassification at Block 208.

This further includes executing the process and monitoring behavior ofthe executed process, and comparing behavior of the executed process toat least one global parameter at Block 210. At least one of theprocessing priority level and the I/O priority level is readjusted atBlock 212 for the executed process if the monitored behavior meets theat least one global parameter. The resource classification is thenupdated at Block 214.

Monitoring the behavior includes determining how much processing isbeing consumed by the executed process, and the at least one globalparameter includes a predetermined processor consumption level. Thecomputer processing system includes at least one memory with a dedicatedmemory area for supporting the executed process, and the method furtherincludes reallocating a portion of the dedicated memory area when theamount of consumed processing is less than the predetermined processorconsumption level.

The readjusting includes changing at least one of the processingpriority level and the I/O priority level.

The computer processing system includes a plurality of processors, andthe method further includes adjusting further comprises changing howmany processors are to be used to execute the process based on the knownor default resource classification.

The computer processing system includes an operating system that isconfigured for adjusting the process to the known or default resourceclassification. As noted above, the operating system includes a Windows™based operating system, for example. Alternatively, the intelligentresource optimization engine 120 is applicable to operating systemsother than Windows™.

FIG. 3 is one embodiment of a computer system that may be used with thepresent disclosure. It will be apparent to those of ordinary skill inthe art, however that other alternative systems of various systemarchitectures may also be used.

The data or computer processing system 300 illustrated in FIG. 3includes a bus or other internal communication means 315 forcommunicating information, and at least one processor 310 coupled to afirst bus 315 for processing information. The system further comprisesat least one random access memory (RAM) or other volatile storage device350 (referred to as memory), coupled to the first bus 315 for storinginformation and instructions to be executed by processor 310. The atleast one main memory 350 also may be used for storing temporaryvariables or other intermediate information during execution ofinstructions by the at least one processor 310. The system alsocomprises a read only memory (ROM) and/or static storage device 320coupled to the first bus 315 for storing static information andinstructions for the at least one processor 310, and a data storagedevice 325, such as a magnetic disk or optical disk and itscorresponding disk drive. The data storage device 325 is coupled to thefirst bus 315 for storing information and instructions. For illustrationpurposes, the resource optimization engine 120 is stored in the at leastone main memory 350. The resource optimization engine 120 may be storedand/or accessible by the computer processing system 300 in locationsother than the at lest one main memory 350, as discussed below.

The computer processing system 300 may further be coupled to a displaydevice 370, such as a liquid crystal display (LCD), coupled to the firstbus 315 through a second bus 365 for displaying information to acomputer user. An alphanumeric input device 375, including alphanumericand other keys, may also be coupled to first bus 315 through the secondbus 365 for communicating information and command selections to the atleast one processor 310. An additional user input device is a cursorcontrol device 380, such as a touchpad, mouse, a trackball, stylus, orcursor direction keys coupled to the first bus 315 through the secondbus 365 for communicating direction information and command selectionsto the at least one processor 310, and for controlling cursor movementon the display device 370.

Another device, which may optionally be coupled to the computerprocessing system 300, is a communication device 390 for accessing othernodes of a distributed system via a network. The communication device390 may include any of a number of commercially available networkingperipheral devices, such as those used for coupling to an Ethernet,token ring, Internet, or wide area network. The communication device 390may further be a null-modem connection, or any other mechanism thatprovides connectivity between the computer system 300 and the outside orexternal world. Note that any or all of the components of this systemillustrated in FIG. 3 and associated hardware may be used in variousembodiments of the present disclosure.

It will be appreciated by those of ordinary skill in the art that anyconfiguration of the system may be used for various purposes accordingto the particular implementation. The control logic or softwareimplementing the present disclosure can be stored in the main memory350, mass storage device 325, or other storage medium locally orremotely accessible to the at least one processor 310.

It will be apparent to those of ordinary skill in the art that thesystem, method, and process described herein can be implemented assoftware stored in the main memory 350 or the read only memory 320 andexecuted by the at least one processor 310. This control logic orsoftware may also be resident on an article of manufacture comprising acomputer readable medium having computer readable program code embodiedtherein and being readable by the mass storage device 325 and forcausing the processor 310 to operate in accordance with the methods andteachings herein.

For example, a non-transitory computer readable medium may have aplurality of computer executable instructions for causing the computerprocessing system 300 to perform steps comprising identifying a processto be executed on the computer processing system, and determining if theprocess has a known resource classification associated therewith. Theknown resource classification may correspond to a processing prioritylevel and an I/O priority level. If the process is associated with theknown resource classification, then at least one of the processingpriority level and the I/O priority level for the process may beadjusted to the known resource classification. If the process is notassociated with the known resource classification, then at least one ofthe processing priority level and the I/O priority level for the processmay be adjusted to the default resource classification.

The present disclosure may also be embodied in a handheld or portabledevice containing a subset of the computer hardware components describedabove. For example, the handheld device may be configured to containonly the first bus 315, the at least one processor 310, and memory 350and/or 325. The handheld device may also be configured to include a setof buttons or input signaling components with which a user may selectfrom a set of available options. The handheld device may also beconfigured to include an output apparatus, such as a liquid crystaldisplay (LCD) or display element matrix for displaying information to auser of the handheld device. Conventional methods may be used toimplement such a handheld device. The implementation of the presentdisclosure for such a device would be apparent to one of ordinary skillin the art.

The present disclosure may also be embodied in a special purposeappliance including a subset of the computer hardware componentsdescribed above. For example, the appliance may include at least oneprocessor 310, a data storage device 325, a bus 315, and a memory 350,and only rudimentary communications mechanisms, such as a smalltouch-screen that permits the user to communicate in a basic manner withthe device. In general, the more special-purpose the device is, thefewer of the elements need be present for the device to function.

It is to be understood that the above description is intended to beillustrative, and not restrictive. Many other embodiments will beapparent to those of skill in the art upon reading and understanding theabove description. The scope of the disclosure should, therefore, bedetermined with reference to the appended claims, along with the fullscope of equivalents to which such claims are entitled.

Many modifications and other embodiments of the disclosure will come tothe mind of one skilled in the art having the benefit of the teachingspresented in the foregoing descriptions and the associated drawings.Therefore, it is understood that the disclosure is not to be limited tothe specific embodiments disclosed, and that modifications andembodiments are intended to be included within the scope of the appendedclaims.

That which is claimed is:
 1. A computer processing system comprising: atleast one processor configured to execute a process; at least one memorycoupled to said at least one processor; and said at least one processoris further configured to perform the following: compare execution of theprocess to at least one global parameter, adjust a priority level of theexecuted process in response to satisfaction of the at least one globalparameter, and allocate a portion of the memory in response to theadjusted priority level.
 2. The computing device according to claim 1wherein the priority level being a processing priority level of said atleast one processor.
 3. The computing device according to claim 1wherein the priority level being an input/output (I/O) priority level ofsaid at least one processor.
 4. The computing device according to claim1 wherein the at least one global parameter comprises a processorconsumption level.
 5. The computing device according to claim 4 whereinthe portion of the memory is allocated in response to a monitoredexecution of the process being less than the processor consumptionlevel.
 6. The computing device according to claim 1 wherein said atleast one processor is further configured to perform the followingbefore execution of the process: identify the process to be executed;determine if the identified process matches a known resourceclassification, the known resource classification having a knownpriority level associated therewith; and adjust the priority level ofthe process to be executed to the known priority level in response tothe identified process matching the known resource classification. 7.The computing device according to claim 6 wherein said at least oneprocessor is further configured to adjust the priority level of theprocess to be executed to a default priority level in response to theidentified process not matching the known resource classification, thedefault priority level associated with a default resourceclassification.
 8. The computing device according to claim 7 whereinsaid at least one memory comprises a dedicated memory for supporting theprocess executable by said at least one processor, the dedicated memoryconfigured to store the known and default resource classifications. 9.The computing device according to claim 1 wherein said at least oneprocessor comprises a plurality of processors, and wherein theadjustment of the priority level further comprises changing how manyprocessors are to be used to execute the process.
 10. The computingdevice according to claim 1 wherein a resource classification of theexecuted process is updated after the adjustment of the priority level.11. The computing device according to claim 10 further comprising anoperating system stored in said at least one memory, wherein said atleast one processor is configured to operate based on the operatingsystem, and wherein said at least one processor is further configured toupdate the resource classification via the operating system.
 12. Acomputing device comprising: at least one processor configured toexecute a process; at least one memory coupled to said at least oneprocessor; and said at least one processor is further configured toperform the following: monitor execution of the process by determiningprocessing resources consumed, compare execution of the process to aprocessor consumption level, adjust a priority level of the executedprocess in response to the consumption of processing resources beingless than the processor consumption level, and allocate a portion of thememory in response to the adjusted priority level.
 13. The computingdevice according to claim 12 wherein the priority level being at leastone of a processing priority level and an input/output (I/O) prioritylevel of said at least one processor.
 14. The computing device accordingto claim 12 wherein said at least one processor is further configured toperform the following before execution of the process: identify theprocess to be executed; determine if the identified process matches aknown resource classification, the known resource classification havinga known priority level associated therewith; and adjust the prioritylevel of the process to be executed to the known priority level inresponse to the identified process matching the known resourceclassification.
 15. The computing device according to claim 14 whereinsaid at least one processor is further configured to adjust the prioritylevel of the process to be executed to a default priority level inresponse to the identified process not matching the known resourceclassification, the default priority level associated with a defaultresource classification.
 16. A method comprising: monitoring executionof a process by at least one processor that is supported by at least onememory coupled to the at least one processor, the monitoring includingdetermining processing resources consumed by the at least one processor;comparing execution of the process to a processor consumption level;adjusting a priority level of the executed process in response to theconsumption of processing resources being less than the processorconsumption level; and allocating a portion of the memory in response tothe adjusted priority level.
 17. The method according to claim 16wherein the priority level being at least one of a processing prioritylevel and an input/output (I/O) priority level of said at least oneprocessor.
 18. The method according to claim 16 further comprisingperforming the following before execution of the process: identifyingthe process to be executed; determine if the identified process matchesa known resource classification, the known resource classificationhaving a known priority level associated therewith; and adjust thepriority level of the process to be executed to the known priority levelin response to the identified process matching the known resourceclassification.
 19. The method according to claim 18 further comprisingadjusting the priority level of the process to be executed to a defaultpriority level in response to the identified process not matching theknown resource classification, the default priority level associatedwith a default resource classification.
 20. A method comprising:monitoring execution of a process by at least one processor that issupported by at least one memory coupled to the at least one processor;comparing execution of the process to at least one global parameter;adjusting a priority level of the executed process in response tosatisfaction of the at least one global parameter; and allocating aportion of the memory in response to the adjusted priority level. 21.The method according to claim 20 wherein the priority level being atleast one of a processing priority level of the at least one processorand an input/output (I/O) priority level of the at least one processor.22. The method according to claim 20 wherein the at least one globalparameter comprises a processor consumption level, and wherein theportion of the memory is allocated in response to a monitored executionof the process being less than the processor consumption level.
 23. Themethod according to claim 20 further comprising performing the followingbefore execution of the process: identifying the process to be executed;determining if the identified process matches a known resourceclassification, the known resource classification having a knownpriority level associated therewith; and adjusting the priority level ofthe process to be executed to the known priority level in response tothe identified process matching the known resource classification. 24.The method according to claim 23 further comprising adjusting thepriority level of the process to be executed to a default priority levelin response to the identified process not matching the known resourceclassification, the default priority level associated with a defaultresource classification.